package com.stock.config;

import com.stock.pojo.vo.StockInfoConfig;
import com.stock.utils.IdWorker;
import com.stock.utils.ParserStockInfoUtil;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;



//TODO：定义公共配置类
@Configuration
//引入application-stock.yml中的数据 -- 加载这个配置类
@EnableConfigurationProperties(StockInfoConfig.class)
public class CommonConfig {

    /**
     * TODO：配置并初始化ID生成器
     *
     * ID生成器用于在分布式系统中生成全局唯一ID
     * 该方法使用@Bean注解，表示将返回的对象实例化为Spring容器中的Bean
     *
     * @return IdWorker 实例，用于生成全局唯一ID
     */
    @Bean
    public IdWorker idWorker() {
        // 实例化IdWorker对象，传入机器节点ID和数据中心ID
        // 2l 表示机器节点ID
        // 1l 表示数据中心ID
        // 这些参数需要根据实际情况进行配置
        return new IdWorker(2l,1l);
    }

    /**
     * 配置解析工具bean
     * @param idWorker
     * @return
     */
    @Bean
    public ParserStockInfoUtil parserStockInfoUtil(IdWorker idWorker){
        return new ParserStockInfoUtil(idWorker);
    }
}